package models

type DescribeDomainsResponse struct {
	AliDomain       bool     `json:"AliDomain,omitempty" xml:"AliDomain,omitempty"`
	CreateTime      string   `json:"CreateTime,omitempty" xml:"CreateTime,omitempty"`
	CreateTimestamp int64    `json:"CreateTimestamp,omitempty" xml:"CreateTimestamp,omitempty"`
	DnsServers      []string `json:"DnsServers,omitempty" xml:"DnsServers,omitempty" type:"Struct"`
	DomainId        string   `json:"DomainId,omitempty" xml:"DomainId,omitempty"`
	DomainName      string   `json:"DomainName,omitempty" xml:"DomainName,omitempty"`
	InstanceEndTime string   `json:"InstanceEndTime,omitempty" xml:"InstanceEndTime,omitempty"`
	InstanceExpired bool     `json:"InstanceExpired,omitempty" xml:"InstanceExpired,omitempty"`
	InstanceId      string   `json:"InstanceId,omitempty" xml:"InstanceId,omitempty"`
	RecordCount     int64    `json:"RecordCount,omitempty" xml:"RecordCount,omitempty"`
	RegistrantEmail string   `json:"RegistrantEmail,omitempty" xml:"RegistrantEmail,omitempty"`
	Remark          string   `json:"Remark,omitempty" xml:"Remark,omitempty"`
	VersionCode     string   `json:"VersionCode,omitempty" xml:"VersionCode,omitempty"`
	VersionName     string   `json:"VersionName,omitempty" xml:"VersionName,omitempty"`
}

type DescribeInstanceDomainsResponse struct {
	CreateTime      string `json:"CreateTime,omitempty" xml:"CreateTime,omitempty"`
	CreateTimestamp int64  `json:"CreateTimestamp,omitempty" xml:"CreateTimestamp,omitempty"`
	DomainName      string `json:"DomainName,omitempty" xml:"DomainName,omitempty"`
}

type DescribeDomainInfoResponse struct {
	DescribeDomainsResponse `json:"describeDomainsResponse"`
	RecordLines             []DescribeDomainRecordLine `json:"recordLines"`
}

type DescribeDomainRecordLine struct {
	FatherCode      string `json:"FatherCode,omitempty" xml:"FatherCode,omitempty"`
	LineCode        string `json:"LineCode,omitempty" xml:"LineCode,omitempty"`
	LineDisplayName string `json:"LineDisplayName,omitempty" xml:"LineDisplayName,omitempty"`
	LineName        string `json:"LineName,omitempty" xml:"LineName,omitempty"`
}

type DomainRecordRequest struct {
	RecordId   string `json:"RecordId"`                                        // 记录ID
	DomainName string `json:"DomainName,omitempty" xml:"DomainName,omitempty"` // 域名
	RR         string `json:"RR,omitempty" xml:"RR,omitempty"`                 // 主机记录。	如果要解析@.exmaple.com，主机记录要填写”@”，而不是空。
	RecordType string `json:"RecordType,omitempty" xml:"RecordType,omitempty"` // 解析记录类型， A NS MX TXT CNAME SRV AAAA
	Value      string `json:"Value,omitempty" xml:"Value,omitempty"`           // 记录值。	示例值: 192.0.2.254
	Line       string `json:"Line,omitempty" xml:"Line,omitempty"`             // 解析线路，默认为default
	TTL        int64  `json:"TTL,omitempty"`                                   // 解析生效时间，默认为600秒（10分钟）
	Priority   int64  `json:"Priority"`                                        // MX记录的优先级，取值范围：[1,50]。记录类型为MX记录时，此参数必需，MX 优先级的数值越低，优先级别就越高。
}

type DescribeDomainRecordsResponse struct {
	CreateTimestamp int64  `json:"CreateTimestamp,omitempty" xml:"CreateTimestamp,omitempty"`
	DomainName      string `json:"DomainName,omitempty" xml:"DomainName,omitempty"`
	Line            string `json:"Line,omitempty" xml:"Line,omitempty"`
	Locked          bool   `json:"Locked,omitempty" xml:"Locked,omitempty"`
	Priority        int64  `json:"Priority,omitempty" xml:"Priority,omitempty"`
	RR              string `json:"RR,omitempty" xml:"RR,omitempty"`
	RecordId        string `json:"RecordId,omitempty" xml:"RecordId,omitempty"`
	Remark          string `json:"Remark,omitempty" xml:"Remark,omitempty"`
	Status          string `json:"Status,omitempty" xml:"Status,omitempty"`
	TTL             int64  `json:"TTL,omitempty" xml:"TTL,omitempty"`
	Type            string `json:"Type,omitempty" xml:"Type,omitempty"`
	UpdateTimestamp int64  `json:"UpdateTimestamp,omitempty" xml:"UpdateTimestamp,omitempty"`
	Value           string `json:"Value,omitempty" xml:"Value,omitempty"`
	Weight          int32  `json:"Weight,omitempty" xml:"Weight,omitempty"`
}
